package tech.lq0.dreamaticdelight.init;

import net.minecraft.world.item.Item;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import tech.lq0.dreamaticdelight.ModUtils;
import tech.lq0.dreamaticdelight.item.food.chiram.ChiramPenumbra;
import tech.lq0.dreamaticdelight.item.food.chiram.ChiramUmbra;
import tech.lq0.dreamaticdelight.item.food.fukamizu.*;
import tech.lq0.dreamaticdelight.item.food.hifumi.DarkBoneBroth;
import tech.lq0.dreamaticdelight.item.food.hifumi.MeiyaCake;
import tech.lq0.dreamaticdelight.item.food.misc.CarnivalMeal;
import tech.lq0.dreamaticdelight.item.food.shirako.MomoSandwich;
import tech.lq0.dreamaticdelight.item.food.shirako.MomoSauce;
import tech.lq0.dreamaticdelight.item.material.UniMilletOil;
import tech.lq0.dreamaticdelight.item.tool.FukamizuBreadKnife;

@SuppressWarnings("unused")
public class DMDItems {

    public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ModUtils.MOD_ID);

    // Tool
    public static final RegistryObject<Item> FUKAMIZU_BREAD_KNIFE = ITEMS.register("fukamizu_bread_knife", FukamizuBreadKnife::new);

    // Material
    public static final RegistryObject<Item> UNI_MILLET_OIL = ITEMS.register("uni_millet_oil", UniMilletOil::new);

    // Food
    public static final RegistryObject<Item> CHIRAM_UMBRA = ITEMS.register("chiram_umbra", ChiramUmbra::new);
    public static final RegistryObject<Item> CHIRAM_PENUMBRA = ITEMS.register("chiram_penumbra", ChiramPenumbra::new);

    public static final RegistryObject<Item> MOMO_SAUCE = ITEMS.register("momo_sauce", MomoSauce::new);
    public static final RegistryObject<Item> MOMO_SANDWICH = ITEMS.register("momo_sandwich", MomoSandwich::new);

    public static final RegistryObject<Item> FUKAMIZU_BREAD_SLICE = ITEMS.register("fukamizu_bread_slice", FukamizuBreadSlice::new);
    public static final RegistryObject<Item> PLUM_BREAD_SLICE = ITEMS.register("plum_bread_slice", PlumBreadSlice::new);
    public static final RegistryObject<Item> FUKAMIZU_PLUM_SAUCE = ITEMS.register("fukamizu_plum_sauce", FukamizuPlumSauce::new);
    public static final RegistryObject<Item> PLUM_SANDWICH = ITEMS.register("plum_sandwich", PlumSandwich::new);
    public static final RegistryObject<Item> FUKAMIZU_FISH_SLICE = ITEMS.register("fukamizu_fish_slice", FukamizuFishSlice::new);
    public static final RegistryObject<Item> COOKED_FUKAMIZU_FISH_SLICE = ITEMS.register("cooked_fukamizu_fish_slice", CookedFukamizuFishSlice::new);
    public static final RegistryObject<Item> FUKAMIZU_FISH_SANDWICH = ITEMS.register("fukamizu_fish_sandwich", FukamizuFishSandwich::new);
    public static final RegistryObject<Item> VANILLA_FUKAMIZU_COOKIE = ITEMS.register("vanilla_fukamizu_cookie", () -> new FukamizuCookie(DMDFoodProperties.VANILLA_FUKAMIZU_COOKIE));
    public static final RegistryObject<Item> COCOA_FUKAMIZU_COOKIE = ITEMS.register("cocoa_fukamizu_cookie", () -> new FukamizuCookie(DMDFoodProperties.COCOA_FUKAMIZU_COOKIE));
    public static final RegistryObject<Item> MOCHA_FUKAMIZU_COOKIE = ITEMS.register("mocha_fukamizu_cookie", () -> new FukamizuCookie(DMDFoodProperties.MOCHA_FUKAMIZU_COOKIE));
    public static final RegistryObject<Item> CHOCOLATE_FUKAMIZU_COOKIE = ITEMS.register("chocolate_fukamizu_cookie", () -> new FukamizuCookie(DMDFoodProperties.CHOCOLATE_FUKAMIZU_COOKIE));

    public static final RegistryObject<Item> DARK_BONE_BROTH = ITEMS.register("dark_bone_broth", DarkBoneBroth::new);
    public static final RegistryObject<Item> MEIYA_CAKE = ITEMS.register("meiya_cake", MeiyaCake::new);

    public static final RegistryObject<Item> CARNIVAL_MEAL = ITEMS.register("carnival_meal", CarnivalMeal::new);

    public static void register(IEventBus bus) {
        ITEMS.register(bus);
    }

}
